As Microsoft's new-generation technical platform, .NET is a new and Internet-based language-neutral software development platform, conforming to the trend of distributed computing, component-oriented development, enterprise-oriented application, Software-as-a-Service and Web-centered development in the software industry. .NET is not a programming language. Multiple programming languages are supported by the .NET platform. A prominent feature of .NET is its support for interactions via Web between users and various smart devices, with controls administrated by the user instead of an application. Therefore the experience with Microsoft .NET brought by smart devices connected with XML Web services is personalized and comprehensive. The smart devices are tools having Web functions, such as personal computers, handhelds and smart phones. With installed software, these devices are more intelligent while interacting with users, networks, information and other devices and services.
A virtual machine can be viewed as a software emulation of a machine with hardware such as processer, memory and register, by which various instructions can be emulated. There are no special requirements for the runtime environment by software running on the machine; hence the virtual machine is transparent to the programs running on it. For example, an x86 virtual machine emulates a runtime environment of x86 instructions and programs, and a c51 virtual machine emulates a runtime environment of c51 instructions and programs.
As Remote Method Invocation (RMI) develops, it has been implemented with many frameworks such as DCE/RPC, CORBA, DCOM, MTS/COM+, Java RMI, Java EJB, Web Services/SOAP/XML-RPC and .NET Remoting. Microsoft .NET Remoting provides a framework allowing objects to interact with one another via an application domain. It is known that Web services only provide a simple and more understandable implementation of cross-platform and language-neutral interactions. .NET Remoting is a significant change to Web services, like Asp to CGI. .NET Remoting provides an extendable framework supporting different transmission mechanisms (built-in HTTP and TCP), different encoding rules (SOAP and binary code) and security configurations (IIS or SSL) while providing various services such as activation and life cycle support.
However, Microsoft .NET Remoting normally imports service-side DLLs to an assembly for compiling and executing, which is not suitable for privilege separation. Moreover, if the content is important and confidential, disclosing the imported contents would be harmful for program protection to those developers.
A .Net card is a smart card with embedded microprocessor which can execute .NET programs.